package cn.zhejianglao.shirotemplate.service.permission.service;

import cn.zhejianglao.shirotemplate.common.model.PagedResult;
import cn.zhejianglao.shirotemplate.common.model.PermissionVO;
import cn.zhejianglao.shirotemplate.service.permission.model.RolePermissionVO;


public interface IPermissionService {

    /**
     * 分页查询权限
     *
     * @param size 单页数量
     * @param page 页码
     * @return 分页查询结果
     */
    PagedResult<PermissionVO> list(int size, int page);

    /**
     * 新增权限
     *
     * @param permissionVO 新增权限
     */
    void create(PermissionVO permissionVO);

    /**
     * 删除权限
     *
     * @param id id
     */
    void delete(Long id);

    /**
     * 新增权限
     *
     * @param permissionVO 更新的权限
     */
    void update(PermissionVO permissionVO);

    /**
     * 关联角色与权限点
     *
     * @param relation 关联关系
     */
    void authorize(RolePermissionVO relation);

    /**
     * 取消关联角色与权限点
     *
     * @param relation 关联关系
     */
    void cancelAuthorization(RolePermissionVO relation);
}
